package com.cdn.nodes.api.domain;

import lombok.Data;
import com.cdn.common.core.annotation.Excel;
import com.cdn.common.core.web.domain.BaseEntity;

/**
 * 边缘集群，存储边缘集群的相关信息，包括配置和状态对象 edge_clusters
 *
 * @author Cinzia
 * @date 2024-12-14
 */
@Data
public class EdgeClusters extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 集群唯一标识符，自增主键 */
    private Long clusterId;

    /** 集群的名称，用于标识不同的集群 */
    @Excel(name = "集群的名称，用于标识不同的集群")
    private String clusterName;

    /** 集群的当前状态，状态(0：在线，1：不在线) */
    @Excel(name = "集群的当前状态，状态(0：在线，1：不在线)")
    private Long clusterStatus;

    /** 集群中的节点总数 */
    @Excel(name = "集群中的节点总数")
    private Long nodeCount;

    /** 集群中当前在线的节点数 */
    @Excel(name = "集群中当前在线的节点数")
    private Long onlineNodeCount;

    /** 集群中部署的网站总数 */
    @Excel(name = "集群中部署的网站总数")
    private Long siteCount;

    /** 集群使用的DNS域名 */
    @Excel(name = "集群使用的DNS域名")
    private String dnsDomain;

    /** 集群的默认缓存设置 */
    @Excel(name = "集群的默认缓存设置")
    private String defaultCacheSettings;

    /** 集群的默认Web应用防火墙(WAF)设置 */
    @Excel(name = "集群的默认Web应用防火墙(WAF)设置")
    private String defaultWafSettings;

    /** 是否允许绑定域名访问，布尔值表示是否启用 */
    @Excel(name = "是否允许绑定域名访问，布尔值表示是否启用")
    private Integer allowDomainBinding;

    /** 节点安装时的选项 */
    @Excel(name = "节点安装时的选项")
    private String nodeInstallOptions;

    /** 节点的默认SSH登录方式 */
    @Excel(name = "节点的默认SSH登录方式")
    private String defaultSshLoginMethod;

    /** 节点安装的目录路径 */
    @Excel(name = "节点安装的目录路径")
    private String nodeInstallDirectory;

    /** 是否自动安装nftables，布尔值表示是否启用 */
    @Excel(name = "是否自动安装nftables，布尔值表示是否启用")
    private Integer autoInstallNftables;

    /** 是否自动调节系统参数，布尔值表示是否启用 */
    @Excel(name = "是否自动调节系统参数，布尔值表示是否启用")
    private Integer autoTuneSystemParams;

    /** 集群的DNS设置选项 */
    @Excel(name = "集群的DNS设置选项")
    private String dnsSettingsOptions;

    /** 集群使用的DNS子域名 */
    @Excel(name = "集群使用的DNS子域名")
    private String dnsSubdomain;

    /** DNS解析记录的TTL（生存时间） */
    @Excel(name = "DNS解析记录的TTL", readConverterExp = "生=存时间")
    private Long dnsRecordTtl;

}
